#pragma once

#include <D3D9.h>
#include "iDebugRender.h"
#include <vector>

#include "NiMain.h"
namespace _MODULE_
{
	namespace _RENDER_
	{

		class NDLDebugRenderer :
			public _FOGGE_::iDebugRender
		{
		public:
			NDLDebugRenderer(NiRendererPtr ptrNDLRenderer);
			~NDLDebugRenderer(void);

			HRESULT RenderDebugInfo(void);

			
		/**
			implementation of the iDebugRender
		*/
		//@{
			void AddPoints(_FOGGE_::DEBUGVERTEX* point,_FOGGE_::foUInt pointCount);
			void AddLines(_FOGGE_::DEBUGVERTEX* point,_FOGGE_::foUInt linetCount);
			void AddTriangles(_FOGGE_::DEBUGVERTEX* point,_FOGGE_::foUInt triangleCount);
		//@}
		/*	void SetWireFrame(bool flag)
			{
				if(flag)
				{
					m_eFillMode=D3DFILL_WIREFRAME;
				}
				else
				{
					m_eFillMode=D3DFILL_SOLID;
				}
			}
*/
			

		private:
		
			NiRendererPtr m_NDLRenderer;
			
			std::vector<NiTriStripsPtr> m_NiTriStripsVector;	
			std::vector<NiLinesPtr>	m_NiLinesVector;
			std::vector<NiParticlesPtr> m_NiParticlesVector;


		};

	}
}
